package com.zueb.mapper;

import com.zueb.pojo.User;
import com.zueb.pojo.UserInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserMapper {
    /**
     * 用户注册
     * @param user
     */
    void addUser(User user);

    /**
     * 查找用户
     * @param userNumber
     * @return
     */
    User getUserByNumber(@Param("userNumber") String userNumber);

    /**
     * 条件查询所有老师
     * @param userRole
     * @return
     */
    List<UserInfo> getAllUser(@Param("userRole") String userRole);

    /**
     * 查询个数
     * @param userRole
     * @param classesId
     * @return
     */
    int getCount(@Param("userRole") String userRole, @Param("classesId") int classesId);

    /**
     * 通过班级查找学生用户
     * @param userRole
     * @param facultyId
     * @param classesId
     * @param index
     * @param pageSize
     * @return
     */
    List<UserInfo> getAllStudent(@Param("userRole") String userRole, @Param("facultyId") int facultyId,
                                 @Param("classesId") int classesId, @Param("index") int index,
                                 @Param("pageSize") int pageSize);

    /**
     * 动态查找 信息
     * @param userRole
     * @param facultyId
     * @param classesId
     * @param index
     * @param pageSize
     * @return
     */
    List<UserInfo> getAllUserInfo(@Param("userRole") String userRole, @Param("facultyId") int facultyId,
                                  @Param("classesId") int classesId, @Param("index") int index,
                                  @Param("pageSize") int pageSize);


    /**
     * 重置密码
     * @param number
     * @return
     */
    int resetPass(@Param("number") String number);

    /**
     * 删除用户
     * @param number
     * @return
     */
    int deleteUser(@Param("number") String number);

    /**
     * 动态查找信息总数
     * @param userRole
     * @param facultyId
     * @param classesId
     * @return
     */
    int getAlUserInfoCount(@Param("userRole") String userRole,
                           @Param("facultyId") int facultyId,
                           @Param("classesId") int classesId);

    void setRegister(@Param("number") String number);

    int accessApply(@Param("userId") int userId);

    int refuseApply(@Param("userId") int userId);

    int editPass(User user);
}
